package  {

import flash.ui.Keyboard;
import starling.events.KeyboardEvent;
import starling.text.TextField;
import starling.text.TextField;

/**
 * User: artem.kolesnikov
 * Date: 14.01.14
 * Descr: гениальный класс
 * вешается на любой дисплей обджект после чего можно его можно двигать и сайзить. (координаты и размер выводятся в трейс);
 * стрелки - двигать; стрелки+ctrl - ресайзить. зажатый шифт увеличивает шаг.
 * кнопка B - включает border у TextField
 * PixelMovingHelper.MovePixelNow(%дисплейобджект%);
 */
public class PixelMovingHelper {

	public static function movePixelNow(displayObject:*):void {
		if (!CONFIG::debug) return;// дабы не накосячить случайно
		displayObject.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
		function onKeyDown(event:KeyboardEvent):void {
			// move
			var mode:Boolean = event.ctrlKey;  // move или resize
			var speed:int = event.shiftKey ? 10: 1;
			if(!mode && event.keyCode == Keyboard.LEFT) {displayObject.x-=speed;}
			if(!mode && event.keyCode == Keyboard.RIGHT) {displayObject.x+=speed;}
			if(!mode && event.keyCode == Keyboard.UP) {displayObject.y-=speed;}
			if(!mode && event.keyCode == Keyboard.DOWN) {displayObject.y+=speed;}
			// resize
            if(mode && event.keyCode == Keyboard.LEFT ) {displayObject.width -= speed;}
            if(mode && event.keyCode == Keyboard.RIGHT ) {displayObject.width += speed;}
            if(mode && event.keyCode == Keyboard.UP) {displayObject.height-=speed;}
            if(mode && event.keyCode == Keyboard.DOWN) {displayObject.height+=speed;}
			// font size
			if(displayObject is TextField) {
				if(event.keyCode == Keyboard.NUMPAD_ADD) {TextField(displayObject).fontSize+=speed;}
				if(event.keyCode == Keyboard.NUMPAD_SUBTRACT) {TextField(displayObject).fontSize-=speed;}
				trace("fontSize=["+TextField(displayObject).fontSize+"]");
			}
			// show border on text field
			if(event.keyCode == Keyboard.B && displayObject is TextField) {displayObject.border =!displayObject.border;}
			trace("position=["+displayObject.x+","+displayObject.y+"]", "size=["+displayObject.width+","+displayObject.height+"]");
		}
	}
}
}
